<?php
    /**
     *  Copyright (c) 2013, dsphinx@plug.gr
     *  All rights reserved.
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions are met:
     *   1. Redistributions of source code must retain the above copyright
     *      notice, this list of conditions and the following disclaimer.
     *   2. Redistributions in binary form must reproduce the above copyright
     *      notice, this list of conditions and the following disclaimer in the
     *      documentation and/or other materials provided with the distribution.
     *   3. All advertising materials mentioning features or use of this software
     *      must display the following acknowledgement:
     *      This product includes software developed by the dsphinx.
     *   4. Neither the name of the dsphinx nor the
     *      names of its contributors may be used to endorse or promote products
     *     derived from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY dsphinx ''AS IS'' AND ANY
     *  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     *  DISCLAIMED. IN NO EVENT SHALL dsphinx BE LIABLE FOR ANY
     *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
     *
     */

//Testing!
    DEFINE ("__AJAX", TRUE);
    DEFINE ("CONFIG", __DIR__ . "/../App/config/configuration.php");

    include(CONFIG);
    include(__DIR__ . '/../App/Library/Mysql/Mysql.php');
    include(__DIR__ . '/../App/Library/Auth/Auth.php');

    /**
     *  Namespace ${NAMESPACE}
     *  Class Sessions
     *
     *   Empyt class fro Auth
     *
     */
    class Sessions
    {
    }

    class Test extends PHPUnit_Framework_TestCase
    {

        public function testEmpty()
        {
            $stack = array();
            $this->assertTrue(TRUE);

            return $stack;
        }

        public function testExistConfig()
        {
            $this->assertFileExists(CONFIG);
        }


        public function testRunningSandbox()
        {
            $this->expectOutputString(RUNNING_MODE);
            print 'sandbox';
        }

        public function testRunningLive()
        {

            $ret = TRUE;
            if (RUNNING_MODE != "live")
                $ret = FALSE;

            $this->assertTrue($ret);
        }

        public function testRunningSanbox()
        {

            $ret = TRUE;
            if (RUNNING_MODE != "sandbox")
                $ret = FALSE;

            $this->assertTrue($ret);
        }

        public function testDBsecurity()
        {
            $sql = "SELECT * FROM `information_schema`.`USER_PRIVILEGES` WHERE  GRANTEE LIKE \"%?%\"";

            // $db = new MyDB();
            //   $rec = $db->rawQuery($sql,array(SQL_USER));
            $this->assertTrue(TRUE);

            // DROP , DELETE check if
            // IS_GRANTABLE="YES" AND
        }


        /* login

        */
        public function test_failed_Login_allnums()
        {

            $password = "123123324234";
            $ret      = Auth::password_rules($password);

            if (!$ret) // Failed
                $this->assertTrue(TRUE);
            else
                $this->assertTrue(FALSE);

        }

        public function test_failed_Login_length()
        {
            $password = "as3";

            $ret = Auth::password_rules($password);
            if (!$ret) // Failed
                $this->assertTrue(TRUE);
            else
                $this->assertTrue(FALSE);
        }

        public function test_pass_Login_length()
        {
            $password = "as3@s#23s3";

            $ret = Auth::password_rules($password);

            if ($ret)
                $this->assertTrue(TRUE);
            else
                $this->assertTrue(FALSE);

        }


    }

